package Dao.impl;

import java.util.List;

import javax.persistence.Query;

import Bean.Cliente;
import Bean.Produto;
import Bean.TipoItem;
import Dao.interfaces.IClienteDao;
import exception.CrudException;

public class ClienteDaoImpl extends GenericCrud<Cliente> implements IClienteDao {

	public ClienteDaoImpl() {
	}

	@Override
	public Cliente carregar(Long id) throws CrudException {
		return carregar(Cliente.class, id);
	}

	@Override
	public List<Cliente> carregarTodos() throws CrudException {
		return carregarTodos(Cliente.class);
	}

	@Override
	public void excluir(Long id) throws CrudException {
		excluir(Cliente.class, id);
		
	}

	@Override
	public List<Cliente> carregarPorParametros(String nome, String cidade, int tipoPessoa) throws CrudException {
		em = emf.createEntityManager();	
		List<Cliente> lista;
		
		String query = "SELECT c FROM Cliente c where c.nome like '%" + nome + "%' and c.cidade like '%" + cidade + "%'";
		if(tipoPessoa == 1)
			query += " and c.fisico = true";
		else if(tipoPessoa == 2)
			query += " and c.fisico = false";
		Query query2 = em.createQuery(query);
		
		lista = query2.getResultList();
		em.close();
		return lista;
	}

}
